﻿using RBAC.MaHaiBo.Entity;
using RBAC.MaHaiBo.Entity.Traceability;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace RBAC.MaHaiBo.Service.TraceabilityService
{
    /// <summary>
    /// 深加工服务层接口
    /// </summary>
    public interface IDeepProcessingService
    {
        /// <summary>
        /// 添加深加工信息
        /// </summary>
        /// <param name="deep">要添加的深加工信息</param>
        /// <returns>返回受影响行数</returns>
        Task<int> AddDeepProcessing(DeepProcessing deep);
        /// <summary>
        /// 修改深加工信息
        /// </summary>
        /// <param name="deep">修改后的深加工信息</param>
        /// <returns>返回受影响行数</returns>
        Task<int> updDeepProcessing(DeepProcessing deep);
        /// <summary>
        /// 显示深加工信息
        /// </summary>
        /// <param name="LOT">批次</param>
        /// <returns>返回深加工信息</returns>
        Task<DeepProcessing> DeepProcessingList(string? LOT);

        /// <summary>
        /// 添加原材信息
        /// </summary>
        /// <param name="raw">要添加原材信息</param>
        /// <returns>返回受影响行数</returns>
        Task<int> AddRawMaterial(RawMaterial raw);
        /// <summary>
        /// 修改原材信息
        /// </summary>
        /// <param name="raw">修改后的原材信息</param>
        /// <returns>返回受影响行数</returns>
        Task<int> updRawMaterial(RawMaterial raw);
        /// <summary>
        /// 显示原料信息
        /// </summary>
        /// <param name="LOT"></param>
        /// <returns>返回原材信息</returns>
        Task<RawMaterial> RawMaterialList(string? LOT);

        /// <summary>
        /// 添加辅料信息
        /// </summary>
        /// <param name="raw">要添加辅料信息</param>
        /// <returns>返回受影响行数</returns>
        Task<int> AddAccessories(Accessories accessories);
        /// <summary>
        /// 修改辅料信息
        /// </summary>
        /// <param name="raw">修改后的辅料信息</param>
        /// <returns>返回受影响行数</returns>
        Task<int> updAccessories(Accessories accessories);
        /// <summary>
        /// 显示辅料信息
        /// </summary>
        /// <param name="LOT"></param>
        /// <returns>返回原材信息</returns>
        Task<Accessories> AccessoriesList(string? LOT);

        /// <summary>
        /// 添加添加剂信息
        /// </summary>
        /// <param name="raw">要添加添加剂信息</param>
        /// <returns>返回受影响行数</returns>
        Task<int> AddAdditive(Additive additive);
        /// <summary>
        /// 修改添加剂信息
        /// </summary>
        /// <param name="raw">修改后的添加剂信息</param>
        /// <returns>返回受影响行数</returns>
        Task<int> updAdditive(Additive additive);
        /// <summary>
        /// 显示添加剂信息
        /// </summary>
        /// <param name="LOT"></param>
        /// <returns>返回添加剂信息</returns>
        Task<Additive> AdditiveList(string? LOT);

        /// <summary>
        /// 添加包材信息
        /// </summary>
        /// <param name="raw">要添加包材信息</param>
        /// <returns>返回受影响行数</returns>
        Task<int> AddPackingMaterials(PackingMaterials materials);
        /// <summary>
        /// 修改包材信息
        /// </summary>
        /// <param name="raw">修改后的包材信息</param>
        /// <returns>返回受影响行数</returns>
        Task<int> updPackingMaterials(PackingMaterials materials);
        /// <summary>
        /// 显示包材信息
        /// </summary>
        /// <param name="LOT"></param>
        /// <returns>返回包材信息</returns>
        Task<PackingMaterials> PackingMaterialsList(string? LOT);


        /// <summary>
        /// 添加屠宰企业信息
        /// </summary>
        /// <param name="firm">企业信息</param>
        /// <returns>返回受影响行数</returns>
        Task<int> AddDeepProcessingFirm(Firm firm);

    }
}
